package com.ruoyi.zhongchuangauto.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.excel.GlobalBigDecimalConverter;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 商品信息对象 product
 *
 * @author ruoyi
 * @date 2025-09-10
 */
@ExcelIgnoreUnannotated
public class Product extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long productId;

    /** 商品ID（业务编码） */
    @Excel(name = "商品ID")
    @ExcelProperty("商品ID")
    private String productCode;

    /** 商品名称 */
    @Excel(name = "商品名称")
    @ExcelProperty("商品名称")
    private String productName;

    /** 分类 */
    @Excel(name = "分类")
    @ExcelProperty("分类")
    private String category;

    /** 规格(JSON) */
    @Excel(name = "规格")
    @ExcelProperty("规格")
    private String spec;

    /** 商家名称 */
    @Excel(name = "商家")
    @ExcelProperty(index=7,value="商家")
    private String merchantName;

    /** 商家联系邮箱 */
    @Excel(name = "商家联系邮箱")
    @ExcelProperty("邮箱")

    private String merchantEmail;

    /** 账户名 */
    @Excel(name = "账户名")
    @ExcelProperty("账户名")
    private String accountName;

    /** 开户行 */
    @Excel(name = "开户行")
    @ExcelProperty("开户行")
    private String bankName;

    /** 开户账号 */
    @Excel(name = "开户账号")
    @ExcelProperty("开户账号")
    private String accountNo;

    /** 强国实付金额 */
    @Excel(name = "强国实付金额")
    @ExcelProperty(value = "强国实付金额",converter = GlobalBigDecimalConverter.class)
    private BigDecimal qgPayAmount;

    /** 强国分佣比例 0~1 */
    @Excel(name = "强国分佣比例")
    @ExcelProperty(value = "强国分佣比例",converter = GlobalBigDecimalConverter.class)
    private BigDecimal qgCommRatio;

    /** 强国结算金额 */
    @Excel(name = "强国结算金额")
    @ExcelProperty(value = "强国结算金额",converter = GlobalBigDecimalConverter.class)
    private BigDecimal qgSettleAmount;

    /** 中创分佣比例 0~1 */
    @Excel(name = "中创分佣比例")
    @ExcelProperty(value = "中创分佣比例",converter = GlobalBigDecimalConverter.class)
    private BigDecimal zcCommRatio;

    /** 中创结算金额 */
    @Excel(name = "中创结算金额")
    @ExcelProperty(value = "中创结算金额",converter = GlobalBigDecimalConverter.class)
    private BigDecimal zcSettleAmount;

    /** 商家分佣比例 0~1 */
    @Excel(name = "商家分佣比例")
    @ExcelProperty(value = "商家分佣比例",converter = GlobalBigDecimalConverter.class)
    private BigDecimal merchantCommRatio;

    /** 商家结算金额 */
    @Excel(name = "商家结算金额")
    @ExcelProperty(value="商家结算金额",converter = GlobalBigDecimalConverter.class)
    private BigDecimal merchantSettleAmount;

    /** 润砚分佣比例 0~1 */
    @Excel(name = "润砚分佣比例")
    @ExcelProperty(value="润砚分佣比例",converter = GlobalBigDecimalConverter.class)
    private BigDecimal runyanCommRatio;

    /** 润砚结算金额 */
    @Excel(name = "润砚结算金额")
    @ExcelProperty(value="润砚结算金额",converter = GlobalBigDecimalConverter.class)
    private BigDecimal runyanSettleAmount;

    /** 翰能分佣比例 0~1 */
    @Excel(name = "翰能分佣比例")
    @ExcelProperty(value="翰能分佣比例",converter = GlobalBigDecimalConverter.class)
    private BigDecimal hannengCommRatio;

    /** 翰能结算金额 */
    @Excel(name = "翰能结算金额")
    @ExcelProperty(value="翰能结算金额",converter = GlobalBigDecimalConverter.class)
    private BigDecimal hannengSettleAmount;

    /** 滨河分佣比例 0~1 */
    @Excel(name = "滨河分佣比例")
    @ExcelProperty(value="滨河分佣比例",converter = GlobalBigDecimalConverter.class)
    private BigDecimal binheCommRatio;

    /** 滨河结算金额 */
    @Excel(name = "滨河结算金额")
    @ExcelProperty(value="滨河结算金额",converter = GlobalBigDecimalConverter.class)
    private BigDecimal binheSettleAmount;


    @Excel(name = "运营状态")
    @ExcelProperty("运营状态")
    private String status;

    /** 备注 */
    @Excel(name = "备注")
    @ExcelProperty("备注")
    private String remark;

    /** 创建时间 */
    @Excel(name = "创建时间",dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;


    /** 更新时间 */
    @Excel(name = "更新时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;


    public void setProductId(Long productId)
    {
        this.productId = productId;
    }

    public Long getProductId()
    {
        return productId;
    }
    public void setProductCode(String productCode)
    {
        this.productCode = productCode;
    }

    public String getProductCode()
    {
        return productCode;
    }
    public void setProductName(String productName)
    {
        this.productName = productName;
    }

    public String getProductName()
    {
        return productName;
    }
    public void setCategory(String category)
    {
        this.category = category;
    }

    public String getCategory()
    {
        return category;
    }
    public void setSpec(String spec)
    {
        this.spec = spec;
    }

    public String getSpec()
    {
        return spec;
    }
    public void setMerchantName(String merchantName)
    {
        this.merchantName = merchantName;
    }

    public String getMerchantName()
    {
        return merchantName;
    }
    public void setMerchantEmail(String merchantEmail)
    {
        this.merchantEmail = merchantEmail;
    }

    public String getMerchantEmail()
    {
        return merchantEmail;
    }
    public void setAccountName(String accountName)
    {
        this.accountName = accountName;
    }

    public String getAccountName()
    {
        return accountName;
    }
    public void setBankName(String bankName)
    {
        this.bankName = bankName;
    }

    public String getBankName()
    {
        return bankName;
    }
    public void setAccountNo(String accountNo)
    {
        this.accountNo = accountNo;
    }

    public String getAccountNo()
    {
        return accountNo;
    }
    public void setQgPayAmount(BigDecimal qgPayAmount)
    {
        this.qgPayAmount = qgPayAmount;
    }

    public BigDecimal getQgPayAmount()
    {
        return qgPayAmount;
    }
    public void setQgCommRatio(BigDecimal qgCommRatio)
    {
        this.qgCommRatio = qgCommRatio;
    }

    public BigDecimal getQgCommRatio()
    {
        return qgCommRatio;
    }
    public void setQgSettleAmount(BigDecimal qgSettleAmount)
    {
        this.qgSettleAmount = qgSettleAmount;
    }

    public BigDecimal getQgSettleAmount()
    {
        return qgSettleAmount;
    }
    public void setZcCommRatio(BigDecimal zcCommRatio)
    {
        this.zcCommRatio = zcCommRatio;
    }

    public BigDecimal getZcCommRatio()
    {
        return zcCommRatio;
    }
    public void setZcSettleAmount(BigDecimal zcSettleAmount)
    {
        this.zcSettleAmount = zcSettleAmount;
    }

    public BigDecimal getZcSettleAmount()
    {
        return zcSettleAmount;
    }
    public void setMerchantCommRatio(BigDecimal merchantCommRatio)
    {
        this.merchantCommRatio = merchantCommRatio;
    }

    public BigDecimal getMerchantCommRatio()
    {
        return merchantCommRatio;
    }
    public void setMerchantSettleAmount(BigDecimal merchantSettleAmount)
    {
        this.merchantSettleAmount = merchantSettleAmount;
    }

    public BigDecimal getMerchantSettleAmount()
    {
        return merchantSettleAmount;
    }

    public void setRunyanCommRatio(BigDecimal runyanCommRatio)
    {
        this.runyanCommRatio = runyanCommRatio;
    }

    public BigDecimal getRunyanCommRatio()
    {
        return runyanCommRatio;
    }
    public void setRunyanSettleAmount(BigDecimal runyanSettleAmount)
    {
        this.runyanSettleAmount = runyanSettleAmount;
    }

    public BigDecimal getRunyanSettleAmount()
    {
        return runyanSettleAmount;
    }
    public void setHannengCommRatio(BigDecimal hannengCommRatio)
    {
        this.hannengCommRatio = hannengCommRatio;
    }

    public BigDecimal getHannengCommRatio()
    {
        return hannengCommRatio;
    }
    public void setHannengSettleAmount(BigDecimal hannengSettleAmount)
    {
        this.hannengSettleAmount = hannengSettleAmount;
    }

    public BigDecimal getHannengSettleAmount()
    {
        return hannengSettleAmount;
    }
    public void setBinheCommRatio(BigDecimal binheCommRatio)
    {
        this.binheCommRatio = binheCommRatio;
    }

    public BigDecimal getBinheCommRatio()
    {
        return binheCommRatio;
    }
    public void setBinheSettleAmount(BigDecimal binheSettleAmount)
    {
        this.binheSettleAmount = binheSettleAmount;
    }

    public BigDecimal getBinheSettleAmount()
    {
        return binheSettleAmount;
    }

    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }

    public String getRemark()
    {
        return remark;
    }

    public void setRemark(String remark)
    {
        this.remark = remark;
    }

    public Date getCreateTime()
    {
        return createTime;
    }

    public void setCreateTime(Date createTime)
    {
        this.createTime = createTime;
    }

    public Date getUpdateTime()
    {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime)
    {
        this.updateTime = updateTime;
    }
    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("productId", getProductId())
            .append("productCode", getProductCode())
            .append("productName", getProductName())
            .append("category", getCategory())
            .append("spec", getSpec())
            .append("merchantName", getMerchantName())
            .append("merchantEmail", getMerchantEmail())
            .append("accountName", getAccountName())
            .append("bankName", getBankName())
            .append("accountNo", getAccountNo())
            .append("qgPayAmount", getQgPayAmount())
            .append("qgCommRatio", getQgCommRatio())
            .append("qgSettleAmount", getQgSettleAmount())
            .append("zcCommRatio", getZcCommRatio())
            .append("zcSettleAmount", getZcSettleAmount())
            .append("merchantCommRatio", getMerchantCommRatio())
            .append("merchantSettleAmount", getMerchantSettleAmount())
            .append("runyanCommRatio", getRunyanCommRatio())
            .append("runyanSettleAmount", getRunyanSettleAmount())
            .append("hannengCommRatio", getHannengCommRatio())
            .append("hannengSettleAmount", getHannengSettleAmount())
            .append("binheCommRatio", getBinheCommRatio())
            .append("binheSettleAmount", getBinheSettleAmount())
            .append("status", getStatus())
            .append("remark", getRemark())
            .toString();
    }
}
